// 在mutation中我们讲到，mutation中是存放处理数据的方法的集合，
// 我们使用的时候需要commit。但是commit是同步函数，而且只能是同步执行。
// 那我们想异步操作怎么办？
// 作用：在actions中提交mutation，并且可以包含任何的异步操作。
// actions可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法，
// 简单的说就是异步操作数据（但是还是通过mutation来操作，因为只有它能操作）

import {
  ADD_COUNTER,
  ADD_TO_CART
} from "./mutations-types"

export default {
  addCart(context,payload) {
    //因为添加购物车的事件要回调添加结果，所有包装一个Promise返回
    return new Promise((resolve,reject) => {
      //查找之前的数组中是否有该商品
      let lodProduct = context.state.cartList.find(item => item.iid == payload.iid)
      //判断oldProduct
      if (lodProduct) { //数量加1
        context.commit(ADD_COUNTER,lodProduct)
        resolve("当前的商品数量加1")
      }
      else {
        payload.count = 1
        context.commit(ADD_TO_CART,payload)
        resolve("添加商品成功")
      }      
    })
  }
}